FROM php:7.2.0RC3-cli
MAINTAINER Amumu <amumu-t@qq.com>


#####################################
# PDO_MYSQL:
#####################################
RUN docker-php-ext-install mysqli \
    && docker-php-ext-install pdo_mysql \
;fi


#####################################
# PHP Memcached:
#####################################
RUN apt-get update && apt-get install -y libmemcached-dev zlib1g-dev \
	&& pecl install memcached-3.0.3 \
	&& docker-php-ext-enable memcached \
;fi




#####################################
# PHP REDIS EXTENSION FOR PHP 7
#####################################
RUN curl -L -o /tmp/redis.tar.gz "https://pecl.php.net/get/redis-3.1.2.tgz" \
    && mkdir -p redis \
    && tar -C redis -zxvf /tmp/redis.tar.gz --strip 1 \
    && ( \
        cd redis \
        && phpize \
        && ./configure \
        && make -j$(nproc) \
        && make install \
    ) \
    && rm -r redis \
    && rm /tmp/redis.tar.gz \
    && docker-php-ext-enable redis \
;fi


#####################################
# Swoole EXTENSION FOR PHP 7
#####################################
RUN curl -L -o /tmp/swoole.tar.gz "https://github.com/swoole/swoole-src/archive/v1.9.19.tar.gz" \
    && mkdir -p swoole \
    && tar -C swoole -zxvf /tmp/swoole.tar.gz --strip 1 \
    && ( \
        cd swoole \
        && phpize \
        && ./configure \
        && make -j$(nproc) \
        && make install \
    ) \
    && rm -r swoole \
    && rm /tmp/swoole.tar.gz \
    && docker-php-ext-enable swoole \
;fi



#####################################
# ZipArchive:
#####################################
RUN docker-php-ext-install zip && docker-php-ext-enable zip \
;fi

#####################################
# bcmath:
#####################################
RUN docker-php-ext-install bcmath && docker-php-ext-enable bcmath \
;fi


#####################################
# Exif:
#####################################
RUN docker-php-ext-install exif && docker-php-ext-enable exif \
;fi

#####################################
# Opcache:
#####################################
RUN docker-php-ext-install opcache && docker-php-ext-enable opcache \
;fi

#
######################################
## mysqlnd:
######################################
#RUN docker-php-ext-install mysqlnd && docker-php-ext-enable mysqlnd \
#;fi


#####################################
# ftp:
#####################################
#RUN docker-php-ext-install ftp && docker-php-ext-enable ftp \
#;fi

#####################################
# mbstring:
#####################################
RUN docker-php-ext-install mbstring && docker-php-ext-enable mbstring \
;fi


#####################################
# mbregex:
#####################################
#RUN docker-php-ext-install mbregex && docker-php-ext-enable mbregex \
#;fi


#####################################
# fpm:
#####################################
#RUN docker-php-ext-install fpm && docker-php-ext-enable fpm \
#;fi

#####################################
# bcmath:
#####################################
RUN docker-php-ext-install bcmath && docker-php-ext-enable bcmath \
;fi


#####################################
# pcntl:
#####################################
RUN docker-php-ext-install pcntl && docker-php-ext-enable pcntl \
;fi

######################################
## libxml2:
######################################
#RUN docker-php-ext-install libxml2 && docker-php-ext-enable libxml2 \
#;fi
#
######################################
## soap:
######################################
#RUN docker-php-ext-install soap && docker-php-ext-enable soap \
#;fi


#####################################
# sockets:
#####################################
RUN docker-php-ext-install sockets && docker-php-ext-enable sockets \
;fi

#####################################
# shmop:
#####################################
RUN docker-php-ext-install shmop && docker-php-ext-enable shmop \
;fi

#####################################
# sysvmsg:
#####################################
RUN docker-php-ext-install sysvmsg && docker-php-ext-enable sysvmsg \
;fi

#####################################
# sysvsem:
#####################################
RUN docker-php-ext-install sysvsem && docker-php-ext-enable sysvsem \
;fi

#####################################
# sysvshm:
#####################################
RUN docker-php-ext-install sysvshm && docker-php-ext-enable sysvshm \
;fi


#####################################
# gd-native-ttf:
#####################################
#RUN docker-php-ext-install gd-native-ttf && docker-php-ext-enable gd-native-ttf \
#;fi


#####################################
# wddx:
#####################################
#RUN docker-php-ext-install wddx && docker-php-ext-enable wddx \
#;fi


#####################################
# gettext:
#####################################
RUN docker-php-ext-install gettext && docker-php-ext-enable gettext \
;fi


#####################################
# xsl:
#####################################
#RUN docker-php-ext-install xsl && docker-php-ext-enable xsl \
#;fi


#####################################
# libexpat-dir:
#####################################
#RUN docker-php-ext-install libexpat-dir && docker-php-ext-enable libexpat-dir \
#;fi


#####################################
# xmlrpc:
#####################################
#RUN docker-php-ext-install xmlrpc && docker-php-ext-enable xmlrpc \
#;fi

#####################################
# snmp:
#####################################
#RUN docker-php-ext-install snmp && docker-php-ext-enable snmp \
#;fi





#####################################
# openssl:
#####################################
#todo

#####################################
# mongo
#####################################
#RUN curl -L -o /tmp/mongo.tar.gz "http://pecl.php.net/get/mongo-1.6.16.tgz" \
#    && mkdir -p mongo \
#    && tar -C mongo -zxvf /tmp/mongo.tar.gz --strip 1 \
#    && ( \
#        cd mongo \
#        && phpize \
#        && ./configure \
#        && make -j$(nproc) \
#        && make install \
#    ) \
#    && rm -r mongo \
#    && rm /tmp/mongo.tar.gz \
#    && docker-php-ext-enable mongo \
#;fi




#####################################
# imagick
#####################################





#####################################
# xdebug PHP version >= 5.5.0 and < 7.2.0
#####################################
#RUN curl -L -o /tmp/xdebug.tar.gz "http://pecl.php.net/get/xdebug-2.5.5.tgz" \
#    && mkdir -p xdebug \
#    && tar -C xdebug -zxvf /tmp/xdebug.tar.gz --strip 1 \
#    && ( \
#        cd xdebug \
#        && phpize \
#        && ./configure \
#        && make -j$(nproc) \
#        && make install \
#    ) \
#    && rm -r xdebug \
#    && rm /tmp/xdebug.tar.gz \
#    && docker-php-ext-enable xdebug \
#;fi



#####################################
# igbinary
#####################################
RUN curl -L -o /tmp/igbinary.tar.gz "http://pecl.php.net/get/igbinary-2.0.1.tgz" \
    && mkdir -p igbinary \
    && tar -C igbinary -zxvf /tmp/igbinary.tar.gz --strip 1 \
    && ( \
        cd igbinary \
        && phpize \
        && ./configure \
        && make -j$(nproc) \
        && make install \
    ) \
    && rm -r igbinary \
    && rm /tmp/igbinary.tar.gz \
    && docker-php-ext-enable igbinary \
;fi



#####################################
# yac
#####################################
RUN curl -L -o /tmp/yac.tar.gz "https://github.com/laruence/yac/archive/yac-2.0.2.tar.gz" \
    && mkdir -p yac \
    && tar -C yac -zxvf /tmp/yac.tar.gz --strip 1 \
    && ( \
        cd yac \
        && phpize \
        && ./configure \
        && make -j$(nproc) \
        && make install \
    ) \
    && rm -r yac \
    && rm /tmp/yac.tar.gz \
    && docker-php-ext-enable yac \
;fi

#####################################
# hiredis
#####################################
#RUN curl -L -o /tmp/hiredis.tar.gz "https://github.com/redis/hiredis/archive/v0.13.3.tar.gz" \
#    && mkdir -p hiredis \
#    && tar -C hiredis -zxvf /tmp/hiredis.tar.gz --strip 1 \
#    && ( \
#        cd hiredis \
#        && phpize \
#        && ./configure \
#        && make -j$(nproc) \
#        && make install \
#    ) \
#    && rm -r hiredis \
#    && rm /tmp/hiredis.tar.gz \
#    && echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf \
#    && ldconfig \
#;fi


#####################################
# phpunit
#####################################
#RUN curl -L -o /phpunit.phar "https://phar.phpunit.de/phpunit.phar" \
#    && mv phpunit.phar /usr/local/etc/php/bin/phpunit \
#    && chmod +x /usr/local/etc/php/bin/phpunit \
#;fi





# Copy opcache configration
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini

#####################################
# Mysqli Modifications:
#####################################
RUN docker-php-ext-install mysqli \
;fi

#####################################
# Tokenizer Modifications:
#####################################
RUN docker-php-ext-install tokenizer \
;fi

RUN usermod -u 1000 www-data

WORKDIR /var/www

CMD ["php"]

EXPOSE 9000
